int[] f={00,13,11,00,00,10,00,00,06,00,00,00,03,00,07,00,00,00,01,00,06,00,00,05,13,02,00,00,00,00,00,00,07,00,00,00,00,00,00,06,04,05,00,00,00,00,13,00,00,00,00,16,00,02,04,00,00,00,09,00,00,00,00,10,10,00,02,00,00,00,11,16,00,00,00,00,00,00,00,00,00,00,00,07,00,00,00,00,00,00,00,05,10,00,15,00,00,00,00,00,00,00,00,01,00,00,06,00,00,00,16,00,00,00,15,02,04,09,03,13,00,00,00,00,07,00,05,11,00,15,00,00,00,00,00,12,00,03,16,00,00,14,00,00,12,14,00,00,00,01,00,00,00,00,00,00,00,00,10,00,06,00,00,15,00,00,02,00,00,00,00,11,00,00,00,00,00,00,00,00,00,00,00,11,07,04,03,06,00,00,12,00,00,00,00,10,00,00,00,14,16,01,00,00,00,06,00,00,00,00,12,00,03,00,00,00,00,00,00,00,11,05,00,00,00,09,00,00,00,00,00,15,00,00,00,00,00,00,02,00,00,07,00,06,00,16,01,00,00,00,10,00,00,04,14,00};
size(10cm);
int N = 16;
path cell = box((0,0),(1,1));
int block=0;
real pastell=4;
real r;
real g;
real b;
r=(1/pastell+1)*(pastell+sin(2*pi*0/16));
g=(1/pastell+1)*(pastell+sin(2*pi/3+2*pi*0/16));
b=(1/pastell+1)*(pastell+sin(4*pi/3+2*pi*0/16));
fill(shift(floor((129-1)/16), (129-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((145-1)/16), (145-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((161-1)/16), (161-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((162-1)/16), (162-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((163-1)/16), (163-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((164-1)/16), (164-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((167-1)/16), (167-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((177-1)/16), (177-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((178-1)/16), (178-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((179-1)/16), (179-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((180-1)/16), (180-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((181-1)/16), (181-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((182-1)/16), (182-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((183-1)/16), (183-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((195-1)/16), (195-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((197-1)/16), (197-1)%16)*cell, rgb(r,g,b));
r=(1/pastell+1)*(pastell+sin(2*pi*1/16));
g=(1/pastell+1)*(pastell+sin(2*pi/3+2*pi*1/16));
b=(1/pastell+1)*(pastell+sin(4*pi/3+2*pi*1/16));
fill(shift(floor((184-1)/16), (184-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((199-1)/16), (199-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((200-1)/16), (200-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((215-1)/16), (215-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((216-1)/16), (216-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((228-1)/16), (228-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((229-1)/16), (229-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((231-1)/16), (231-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((232-1)/16), (232-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((243-1)/16), (243-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((244-1)/16), (244-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((245-1)/16), (245-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((246-1)/16), (246-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((247-1)/16), (247-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((248-1)/16), (248-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((249-1)/16), (249-1)%16)*cell, rgb(r,g,b));
r=(1/pastell+1)*(pastell+sin(2*pi*2/16));
g=(1/pastell+1)*(pastell+sin(2*pi/3+2*pi*2/16));
b=(1/pastell+1)*(pastell+sin(4*pi/3+2*pi*2/16));
fill(shift(floor((86-1)/16), (86-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((102-1)/16), (102-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((103-1)/16), (103-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((104-1)/16), (104-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((117-1)/16), (117-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((118-1)/16), (118-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((130-1)/16), (130-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((131-1)/16), (131-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((132-1)/16), (132-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((133-1)/16), (133-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((134-1)/16), (134-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((146-1)/16), (146-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((147-1)/16), (147-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((148-1)/16), (148-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((149-1)/16), (149-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((165-1)/16), (165-1)%16)*cell, rgb(r,g,b));
r=(1/pastell+1)*(pastell+sin(2*pi*3/16));
g=(1/pastell+1)*(pastell+sin(2*pi/3+2*pi*3/16));
b=(1/pastell+1)*(pastell+sin(4*pi/3+2*pi*3/16));
fill(shift(floor((193-1)/16), (193-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((194-1)/16), (194-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((196-1)/16), (196-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((198-1)/16), (198-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((209-1)/16), (209-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((210-1)/16), (210-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((211-1)/16), (211-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((212-1)/16), (212-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((213-1)/16), (213-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((214-1)/16), (214-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((225-1)/16), (225-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((226-1)/16), (226-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((227-1)/16), (227-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((230-1)/16), (230-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((241-1)/16), (241-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((242-1)/16), (242-1)%16)*cell, rgb(r,g,b));
r=(1/pastell+1)*(pastell+sin(2*pi*4/16));
g=(1/pastell+1)*(pastell+sin(2*pi/3+2*pi*4/16));
b=(1/pastell+1)*(pastell+sin(4*pi/3+2*pi*4/16));
fill(shift(floor((10-1)/16), (10-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((11-1)/16), (11-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((26-1)/16), (26-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((27-1)/16), (27-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((28-1)/16), (28-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((39-1)/16), (39-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((40-1)/16), (40-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((42-1)/16), (42-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((43-1)/16), (43-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((44-1)/16), (44-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((56-1)/16), (56-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((57-1)/16), (57-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((58-1)/16), (58-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((59-1)/16), (59-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((74-1)/16), (74-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((75-1)/16), (75-1)%16)*cell, rgb(r,g,b));
r=(1/pastell+1)*(pastell+sin(2*pi*5/16));
g=(1/pastell+1)*(pastell+sin(2*pi/3+2*pi*5/16));
b=(1/pastell+1)*(pastell+sin(4*pi/3+2*pi*5/16));
fill(shift(floor((122-1)/16), (122-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((123-1)/16), (123-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((137-1)/16), (137-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((138-1)/16), (138-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((150-1)/16), (150-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((151-1)/16), (151-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((152-1)/16), (152-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((153-1)/16), (153-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((166-1)/16), (166-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((168-1)/16), (168-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((169-1)/16), (169-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((185-1)/16), (185-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((201-1)/16), (201-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((217-1)/16), (217-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((218-1)/16), (218-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((233-1)/16), (233-1)%16)*cell, rgb(r,g,b));
r=(1/pastell+1)*(pastell+sin(2*pi*6/16));
g=(1/pastell+1)*(pastell+sin(2*pi/3+2*pi*6/16));
b=(1/pastell+1)*(pastell+sin(4*pi/3+2*pi*6/16));
fill(shift(floor((3-1)/16), (3-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((4-1)/16), (4-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((5-1)/16), (5-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((6-1)/16), (6-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((7-1)/16), (7-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((8-1)/16), (8-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((9-1)/16), (9-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((20-1)/16), (20-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((35-1)/16), (35-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((36-1)/16), (36-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((51-1)/16), (51-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((52-1)/16), (52-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((66-1)/16), (66-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((67-1)/16), (67-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((68-1)/16), (68-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((83-1)/16), (83-1)%16)*cell, rgb(r,g,b));
r=(1/pastell+1)*(pastell+sin(2*pi*7/16));
g=(1/pastell+1)*(pastell+sin(2*pi/3+2*pi*7/16));
b=(1/pastell+1)*(pastell+sin(4*pi/3+2*pi*7/16));
fill(shift(floor((21-1)/16), (21-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((22-1)/16), (22-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((23-1)/16), (23-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((24-1)/16), (24-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((25-1)/16), (25-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((37-1)/16), (37-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((41-1)/16), (41-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((53-1)/16), (53-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((69-1)/16), (69-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((84-1)/16), (84-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((85-1)/16), (85-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((98-1)/16), (98-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((99-1)/16), (99-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((100-1)/16), (100-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((101-1)/16), (101-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((116-1)/16), (116-1)%16)*cell, rgb(r,g,b));
r=(1/pastell+1)*(pastell+sin(2*pi*8/16));
g=(1/pastell+1)*(pastell+sin(2*pi/3+2*pi*8/16));
b=(1/pastell+1)*(pastell+sin(4*pi/3+2*pi*8/16));
fill(shift(floor((62-1)/16), (62-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((77-1)/16), (77-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((78-1)/16), (78-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((79-1)/16), (79-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((93-1)/16), (93-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((94-1)/16), (94-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((95-1)/16), (95-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((109-1)/16), (109-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((110-1)/16), (110-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((111-1)/16), (111-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((126-1)/16), (126-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((140-1)/16), (140-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((141-1)/16), (141-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((142-1)/16), (142-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((157-1)/16), (157-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((158-1)/16), (158-1)%16)*cell, rgb(r,g,b));
r=(1/pastell+1)*(pastell+sin(2*pi*9/16));
g=(1/pastell+1)*(pastell+sin(2*pi/3+2*pi*9/16));
b=(1/pastell+1)*(pastell+sin(4*pi/3+2*pi*9/16));
fill(shift(floor((205-1)/16), (205-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((206-1)/16), (206-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((208-1)/16), (208-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((222-1)/16), (222-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((223-1)/16), (223-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((224-1)/16), (224-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((234-1)/16), (234-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((239-1)/16), (239-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((240-1)/16), (240-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((250-1)/16), (250-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((251-1)/16), (251-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((252-1)/16), (252-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((253-1)/16), (253-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((254-1)/16), (254-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((255-1)/16), (255-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((256-1)/16), (256-1)%16)*cell, rgb(r,g,b));
r=(1/pastell+1)*(pastell+sin(2*pi*10/16));
g=(1/pastell+1)*(pastell+sin(2*pi/3+2*pi*10/16));
b=(1/pastell+1)*(pastell+sin(4*pi/3+2*pi*10/16));
fill(shift(floor((12-1)/16), (12-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((13-1)/16), (13-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((14-1)/16), (14-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((15-1)/16), (15-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((16-1)/16), (16-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((32-1)/16), (32-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((47-1)/16), (47-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((48-1)/16), (48-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((63-1)/16), (63-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((64-1)/16), (64-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((80-1)/16), (80-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((96-1)/16), (96-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((112-1)/16), (112-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((127-1)/16), (127-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((128-1)/16), (128-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((144-1)/16), (144-1)%16)*cell, rgb(r,g,b));
r=(1/pastell+1)*(pastell+sin(2*pi*11/16));
g=(1/pastell+1)*(pastell+sin(2*pi/3+2*pi*11/16));
b=(1/pastell+1)*(pastell+sin(4*pi/3+2*pi*11/16));
fill(shift(floor((38-1)/16), (38-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((54-1)/16), (54-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((55-1)/16), (55-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((70-1)/16), (70-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((71-1)/16), (71-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((72-1)/16), (72-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((73-1)/16), (73-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((87-1)/16), (87-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((88-1)/16), (88-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((89-1)/16), (89-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((105-1)/16), (105-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((119-1)/16), (119-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((120-1)/16), (120-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((121-1)/16), (121-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((135-1)/16), (135-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((136-1)/16), (136-1)%16)*cell, rgb(r,g,b));
r=(1/pastell+1)*(pastell+sin(2*pi*12/16));
g=(1/pastell+1)*(pastell+sin(2*pi/3+2*pi*12/16));
b=(1/pastell+1)*(pastell+sin(4*pi/3+2*pi*12/16));
fill(shift(floor((1-1)/16), (1-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((2-1)/16), (2-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((17-1)/16), (17-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((18-1)/16), (18-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((19-1)/16), (19-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((33-1)/16), (33-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((34-1)/16), (34-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((49-1)/16), (49-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((50-1)/16), (50-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((65-1)/16), (65-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((81-1)/16), (81-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((82-1)/16), (82-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((97-1)/16), (97-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((113-1)/16), (113-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((114-1)/16), (114-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((115-1)/16), (115-1)%16)*cell, rgb(r,g,b));
r=(1/pastell+1)*(pastell+sin(2*pi*13/16));
g=(1/pastell+1)*(pastell+sin(2*pi/3+2*pi*13/16));
b=(1/pastell+1)*(pastell+sin(4*pi/3+2*pi*13/16));
fill(shift(floor((143-1)/16), (143-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((159-1)/16), (159-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((160-1)/16), (160-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((173-1)/16), (173-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((174-1)/16), (174-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((175-1)/16), (175-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((176-1)/16), (176-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((188-1)/16), (188-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((189-1)/16), (189-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((190-1)/16), (190-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((191-1)/16), (191-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((192-1)/16), (192-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((204-1)/16), (204-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((207-1)/16), (207-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((220-1)/16), (220-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((221-1)/16), (221-1)%16)*cell, rgb(r,g,b));
r=(1/pastell+1)*(pastell+sin(2*pi*14/16));
g=(1/pastell+1)*(pastell+sin(2*pi/3+2*pi*14/16));
b=(1/pastell+1)*(pastell+sin(4*pi/3+2*pi*14/16));
fill(shift(floor((139-1)/16), (139-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((154-1)/16), (154-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((155-1)/16), (155-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((156-1)/16), (156-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((170-1)/16), (170-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((171-1)/16), (171-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((172-1)/16), (172-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((186-1)/16), (186-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((187-1)/16), (187-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((202-1)/16), (202-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((203-1)/16), (203-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((219-1)/16), (219-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((235-1)/16), (235-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((236-1)/16), (236-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((237-1)/16), (237-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((238-1)/16), (238-1)%16)*cell, rgb(r,g,b));
r=(1/pastell+1)*(pastell+sin(2*pi*15/16));
g=(1/pastell+1)*(pastell+sin(2*pi/3+2*pi*15/16));
b=(1/pastell+1)*(pastell+sin(4*pi/3+2*pi*15/16));
fill(shift(floor((29-1)/16), (29-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((30-1)/16), (30-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((31-1)/16), (31-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((45-1)/16), (45-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((46-1)/16), (46-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((60-1)/16), (60-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((61-1)/16), (61-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((76-1)/16), (76-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((90-1)/16), (90-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((91-1)/16), (91-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((92-1)/16), (92-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((106-1)/16), (106-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((107-1)/16), (107-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((108-1)/16), (108-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((124-1)/16), (124-1)%16)*cell, rgb(r,g,b));
fill(shift(floor((125-1)/16), (125-1)%16)*cell, rgb(r,g,b));
draw((0,0) -- (N,0), black+linewidth(3pt));
draw((N,0) -- (N,N), black+linewidth(3pt));
draw((N,N) -- (0,N), black+linewidth(3pt));
draw((0,N) -- (0,0), black+linewidth(3pt));
real[] B={5.000000e-01,2.000000e+00, 1.000000e+00,2.500000e+00, 1.000000e+00,4.500000e+00, 1.000000e+00,5.500000e+00, 1.000000e+00,6.500000e+00, 1.000000e+00,7.500000e+00, 5.000000e-01,9.000000e+00, 1.000000e+00,8.500000e+00, 5.000000e-01,1.100000e+01, 1.000000e+00,1.150000e+01, 1.000000e+00,1.250000e+01, 1.000000e+00,1.350000e+01, 1.000000e+00,1.450000e+01, 1.500000e+00,3.000000e+00, 2.000000e+00,2.500000e+00, 1.500000e+00,4.000000e+00, 2.000000e+00,5.500000e+00, 2.000000e+00,6.500000e+00, 2.000000e+00,7.500000e+00, 1.500000e+00,9.000000e+00, 1.500000e+00,1.200000e+01, 1.500000e+00,1.500000e+01, 2.000000e+00,1.450000e+01, 2.500000e+00,2.000000e+00, 2.500000e+00,4.000000e+00, 2.500000e+00,5.000000e+00, 2.500000e+00,6.000000e+00, 3.000000e+00,6.500000e+00, 2.500000e+00,8.000000e+00, 2.500000e+00,9.000000e+00, 3.000000e+00,8.500000e+00, 2.500000e+00,1.200000e+01, 3.000000e+00,1.150000e+01, 2.500000e+00,1.400000e+01, 3.000000e+00,1.350000e+01, 3.500000e+00,2.000000e+00, 4.000000e+00,1.500000e+00, 3.500000e+00,4.000000e+00, 3.500000e+00,5.000000e+00, 3.500000e+00,7.000000e+00, 4.000000e+00,7.500000e+00, 4.000000e+00,8.500000e+00, 3.500000e+00,1.100000e+01, 3.500000e+00,1.300000e+01, 4.000000e+00,1.250000e+01, 3.500000e+00,1.400000e+01, 4.000000e+00,1.450000e+01, 4.500000e+00,1.000000e+00, 5.000000e+00,1.500000e+00, 4.500000e+00,4.000000e+00, 5.000000e+00,3.500000e+00, 4.500000e+00,5.000000e+00, 5.000000e+00,5.500000e+00, 4.500000e+00,9.000000e+00, 5.000000e+00,9.500000e+00, 4.500000e+00,1.100000e+01, 5.000000e+00,1.050000e+01, 4.500000e+00,1.200000e+01, 4.500000e+00,1.500000e+01, 5.500000e+00,2.000000e+00, 6.000000e+00,1.500000e+00, 5.500000e+00,3.000000e+00, 6.000000e+00,2.500000e+00, 5.500000e+00,5.000000e+00, 5.500000e+00,6.000000e+00, 6.000000e+00,6.500000e+00, 6.000000e+00,7.500000e+00, 5.500000e+00,9.000000e+00, 5.500000e+00,1.200000e+01, 5.500000e+00,1.500000e+01, 6.500000e+00,1.000000e+00, 7.000000e+00,1.500000e+00, 7.000000e+00,2.500000e+00, 6.500000e+00,5.000000e+00, 7.000000e+00,4.500000e+00, 7.000000e+00,6.500000e+00, 6.500000e+00,8.000000e+00, 7.000000e+00,7.500000e+00, 6.500000e+00,9.000000e+00, 7.000000e+00,9.500000e+00, 7.000000e+00,1.050000e+01, 6.500000e+00,1.200000e+01, 7.000000e+00,1.250000e+01, 6.500000e+00,1.500000e+01, 7.000000e+00,1.450000e+01, 8.000000e+00,5.000000e-01, 8.000000e+00,1.500000e+00, 7.500000e+00,3.000000e+00, 8.000000e+00,2.500000e+00, 7.500000e+00,4.000000e+00, 8.000000e+00,3.500000e+00, 7.500000e+00,6.000000e+00, 7.500000e+00,9.000000e+00, 8.000000e+00,8.500000e+00, 7.500000e+00,1.100000e+01, 8.000000e+00,1.050000e+01, 8.000000e+00,1.150000e+01, 7.500000e+00,1.300000e+01, 8.000000e+00,1.250000e+01, 7.500000e+00,1.400000e+01, 8.000000e+00,1.450000e+01, 8.500000e+00,1.000000e+00, 8.500000e+00,6.000000e+00, 9.000000e+00,5.500000e+00, 9.000000e+00,6.500000e+00, 8.500000e+00,8.000000e+00, 9.000000e+00,7.500000e+00, 8.500000e+00,1.000000e+01, 9.000000e+00,9.500000e+00, 8.500000e+00,1.100000e+01, 9.000000e+00,1.150000e+01, 8.500000e+00,1.400000e+01, 8.500000e+00,1.500000e+01, 9.000000e+00,1.550000e+01, 9.500000e+00,1.000000e+00, 1.000000e+01,1.500000e+00, 1.000000e+01,2.500000e+00, 1.000000e+01,3.500000e+00, 9.500000e+00,5.000000e+00, 1.000000e+01,6.500000e+00, 9.500000e+00,9.000000e+00, 9.500000e+00,1.200000e+01, 1.000000e+01,1.250000e+01, 9.500000e+00,1.400000e+01, 1.000000e+01,1.350000e+01, 1.050000e+01,4.000000e+00, 1.050000e+01,5.000000e+00, 1.100000e+01,4.500000e+00, 1.050000e+01,6.000000e+00, 1.100000e+01,5.500000e+00, 1.050000e+01,7.000000e+00, 1.100000e+01,7.500000e+00, 1.050000e+01,9.000000e+00, 1.050000e+01,1.200000e+01, 1.100000e+01,1.150000e+01, 1.200000e+01,5.000000e-01, 1.200000e+01,1.500000e+00, 1.200000e+01,3.500000e+00, 1.200000e+01,5.500000e+00, 1.150000e+01,7.000000e+00, 1.200000e+01,6.500000e+00, 1.150000e+01,8.000000e+00, 1.150000e+01,9.000000e+00, 1.150000e+01,1.100000e+01, 1.200000e+01,1.250000e+01, 1.200000e+01,1.350000e+01, 1.200000e+01,1.550000e+01, 1.250000e+01,2.000000e+00, 1.250000e+01,3.000000e+00, 1.300000e+01,2.500000e+00, 1.250000e+01,4.000000e+00, 1.250000e+01,5.000000e+00, 1.300000e+01,4.500000e+00, 1.250000e+01,6.000000e+00, 1.250000e+01,8.000000e+00, 1.250000e+01,9.000000e+00, 1.300000e+01,9.500000e+00, 1.250000e+01,1.100000e+01, 1.250000e+01,1.200000e+01, 1.300000e+01,1.250000e+01, 1.250000e+01,1.400000e+01, 1.250000e+01,1.500000e+01, 1.300000e+01,1.450000e+01, 1.400000e+01,3.500000e+00, 1.400000e+01,4.500000e+00, 1.350000e+01,6.000000e+00, 1.350000e+01,8.000000e+00, 1.350000e+01,1.000000e+01, 1.400000e+01,9.500000e+00, 1.350000e+01,1.100000e+01, 1.400000e+01,1.150000e+01, 1.350000e+01,1.300000e+01, 1.400000e+01,1.250000e+01, 1.400000e+01,1.350000e+01, 1.450000e+01,3.000000e+00, 1.500000e+01,2.500000e+00, 1.450000e+01,5.000000e+00, 1.450000e+01,6.000000e+00, 1.500000e+01,5.500000e+00, 1.450000e+01,8.000000e+00, 1.450000e+01,9.000000e+00, 1.500000e+01,8.500000e+00, 1.450000e+01,1.000000e+01, 1.500000e+01,1.050000e+01, 1.500000e+01,1.150000e+01, 1.500000e+01,1.250000e+01, 1.450000e+01,1.400000e+01, 1.500000e+01,1.350000e+01, 1.550000e+01,2.000000e+00, 1.550000e+01,9.000000e+00, };
int k=0;
for (int i = 0; i < N; ++i) {
	for (int j = 0; j < N; ++j) {
		draw(shift(i, j)*cell, black+linewidth(0.5pt));
		if (f[k]>0)
			label(string(f[k]),p = fontsize(13pt), (i+0.5,j+0.5));
		k=k+1;
	}
}
real x;
real y;
for (int i = 0; i < B.length/2; ++i) {
	x=B[2*i];
	y=B[2*i+1];
	if (x-floor(x)>0.1)
		draw((floor(x),y) -- (floor(x)+1,y), black+linewidth(2pt));
	else
		draw((x, floor(y)) -- (x, floor(y)+1), black+linewidth(2pt));
}
